package com.sunny.fetch.pojo;

import javax.persistence.*;

@Table(name = "f_forecast")
public class FForecast {
    @Id
    private Long tid;

    /**
     * TS股票代码
     */
    @Column(name = "ts_code")
    private String tsCode;

    /**
     * 公告日期
     */
    @Column(name = "ann_date")
    private String annDate;

    /**
     * 报告期
     */
    @Column(name = "end_date")
    private String endDate;

    /**
     * 业绩预告类型(预增/预减/扭亏/首亏/续亏/续盈/略增/略减)
     */
    private String type;

    /**
     * 预告净利润变动幅度下限（%）
     */
    @Column(name = "p_change_min")
    private Float pChangeMin;

    /**
     * 预告净利润变动幅度上限（%）
     */
    @Column(name = "p_change_max")
    private Float pChangeMax;

    /**
     * 预告净利润下限（万元）
     */
    @Column(name = "net_profit_min")
    private Float netProfitMin;

    /**
     * 预告净利润上限（万元）
     */
    @Column(name = "net_profit_max")
    private Float netProfitMax;

    /**
     * 上年同期归属母公司净利润
     */
    @Column(name = "last_parent_net")
    private Float lastParentNet;

    /**
     * 首次公告日
     */
    @Column(name = "first_ann_date")
    private String firstAnnDate;

    /**
     * 业绩预告摘要
     */
    private String summary;

    /**
     * 业绩变动原因
     */
    @Column(name = "change_reason")
    private String changeReason;

    public FForecast(Long tid, String tsCode, String annDate, String endDate, String type, Float pChangeMin, Float pChangeMax, Float netProfitMin, Float netProfitMax, Float lastParentNet, String firstAnnDate, String summary, String changeReason) {
        this.tid = tid;
        this.tsCode = tsCode;
        this.annDate = annDate;
        this.endDate = endDate;
        this.type = type;
        this.pChangeMin = pChangeMin;
        this.pChangeMax = pChangeMax;
        this.netProfitMin = netProfitMin;
        this.netProfitMax = netProfitMax;
        this.lastParentNet = lastParentNet;
        this.firstAnnDate = firstAnnDate;
        this.summary = summary;
        this.changeReason = changeReason;
    }

    public FForecast() {
        super();
    }

    /**
     * @return tid
     */
    public Long getTid() {
        return tid;
    }

    /**
     * @param tid
     */
    public void setTid(Long tid) {
        this.tid = tid;
    }

    /**
     * 获取TS股票代码
     *
     * @return ts_code - TS股票代码
     */
    public String getTsCode() {
        return tsCode;
    }

    /**
     * 设置TS股票代码
     *
     * @param tsCode TS股票代码
     */
    public void setTsCode(String tsCode) {
        this.tsCode = tsCode;
    }

    /**
     * 获取公告日期
     *
     * @return ann_date - 公告日期
     */
    public String getAnnDate() {
        return annDate;
    }

    /**
     * 设置公告日期
     *
     * @param annDate 公告日期
     */
    public void setAnnDate(String annDate) {
        this.annDate = annDate;
    }

    /**
     * 获取报告期
     *
     * @return end_date - 报告期
     */
    public String getEndDate() {
        return endDate;
    }

    /**
     * 设置报告期
     *
     * @param endDate 报告期
     */
    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    /**
     * 获取业绩预告类型(预增/预减/扭亏/首亏/续亏/续盈/略增/略减)
     *
     * @return type - 业绩预告类型(预增/预减/扭亏/首亏/续亏/续盈/略增/略减)
     */
    public String getType() {
        return type;
    }

    /**
     * 设置业绩预告类型(预增/预减/扭亏/首亏/续亏/续盈/略增/略减)
     *
     * @param type 业绩预告类型(预增/预减/扭亏/首亏/续亏/续盈/略增/略减)
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * 获取预告净利润变动幅度下限（%）
     *
     * @return p_change_min - 预告净利润变动幅度下限（%）
     */
    public Float getpChangeMin() {
        return pChangeMin;
    }

    /**
     * 设置预告净利润变动幅度下限（%）
     *
     * @param pChangeMin 预告净利润变动幅度下限（%）
     */
    public void setpChangeMin(Float pChangeMin) {
        this.pChangeMin = pChangeMin;
    }

    /**
     * 获取预告净利润变动幅度上限（%）
     *
     * @return p_change_max - 预告净利润变动幅度上限（%）
     */
    public Float getpChangeMax() {
        return pChangeMax;
    }

    /**
     * 设置预告净利润变动幅度上限（%）
     *
     * @param pChangeMax 预告净利润变动幅度上限（%）
     */
    public void setpChangeMax(Float pChangeMax) {
        this.pChangeMax = pChangeMax;
    }

    /**
     * 获取预告净利润下限（万元）
     *
     * @return net_profit_min - 预告净利润下限（万元）
     */
    public Float getNetProfitMin() {
        return netProfitMin;
    }

    /**
     * 设置预告净利润下限（万元）
     *
     * @param netProfitMin 预告净利润下限（万元）
     */
    public void setNetProfitMin(Float netProfitMin) {
        this.netProfitMin = netProfitMin;
    }

    /**
     * 获取预告净利润上限（万元）
     *
     * @return net_profit_max - 预告净利润上限（万元）
     */
    public Float getNetProfitMax() {
        return netProfitMax;
    }

    /**
     * 设置预告净利润上限（万元）
     *
     * @param netProfitMax 预告净利润上限（万元）
     */
    public void setNetProfitMax(Float netProfitMax) {
        this.netProfitMax = netProfitMax;
    }

    /**
     * 获取上年同期归属母公司净利润
     *
     * @return last_parent_net - 上年同期归属母公司净利润
     */
    public Float getLastParentNet() {
        return lastParentNet;
    }

    /**
     * 设置上年同期归属母公司净利润
     *
     * @param lastParentNet 上年同期归属母公司净利润
     */
    public void setLastParentNet(Float lastParentNet) {
        this.lastParentNet = lastParentNet;
    }

    /**
     * 获取首次公告日
     *
     * @return first_ann_date - 首次公告日
     */
    public String getFirstAnnDate() {
        return firstAnnDate;
    }

    /**
     * 设置首次公告日
     *
     * @param firstAnnDate 首次公告日
     */
    public void setFirstAnnDate(String firstAnnDate) {
        this.firstAnnDate = firstAnnDate;
    }

    /**
     * 获取业绩预告摘要
     *
     * @return summary - 业绩预告摘要
     */
    public String getSummary() {
        return summary;
    }

    /**
     * 设置业绩预告摘要
     *
     * @param summary 业绩预告摘要
     */
    public void setSummary(String summary) {
        this.summary = summary;
    }

    /**
     * 获取业绩变动原因
     *
     * @return change_reason - 业绩变动原因
     */
    public String getChangeReason() {
        return changeReason;
    }

    /**
     * 设置业绩变动原因
     *
     * @param changeReason 业绩变动原因
     */
    public void setChangeReason(String changeReason) {
        this.changeReason = changeReason;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", tid=").append(tid);
        sb.append(", tsCode=").append(tsCode);
        sb.append(", annDate=").append(annDate);
        sb.append(", endDate=").append(endDate);
        sb.append(", type=").append(type);
        sb.append(", pChangeMin=").append(pChangeMin);
        sb.append(", pChangeMax=").append(pChangeMax);
        sb.append(", netProfitMin=").append(netProfitMin);
        sb.append(", netProfitMax=").append(netProfitMax);
        sb.append(", lastParentNet=").append(lastParentNet);
        sb.append(", firstAnnDate=").append(firstAnnDate);
        sb.append(", summary=").append(summary);
        sb.append(", changeReason=").append(changeReason);
        sb.append("]");
        return sb.toString();
    }
}